<?php

//函数参数的默认值，某位置参数有默认值，那么其后的参数都必须有默认值
function f($name, $age = 20)
{
    echo "$name, $age\n";
}

f('张三');
f('李四', 22);

//可变数量的参数列表
function sum(...$numbers)
{
    $acc = 0;
    foreach ($numbers as $n) {
        $acc += $n;
    }
    return $acc;
}

echo sum(1, 2, 3, 4), "\n";

//命名参数与位置参数可同时使用，此时命名参数必须在位置参数之后
function f2($name, $age = 20, $sex = '男')
{
    echo "$name, $age, $sex\n";
}

f2('杨柳依依', sex: '女');
f2(sex: '女', name: '杨柳依依', age: 18);

//匿名函数,就是未指定名称的函数。最经常用作回调函数 callable参数的值
$a = [2, 3, 4];
$r = array_map(function ($v) {
    return $v * $v;
}, $a);
print_r($r);

$b = [10, 100, 1000];
$r = array_map(function ($v1, $v2) {
    return $v1 * $v2;
}, $a, $b);
print_r($r);


